【LINE】APIからユーザプロフィールを取得する
はじめに
CX事業本部の吉川です。
LIFFアプリのバックエンドでユーザ情報を取得したいケースはよく発生すると思います。
例えば、Lambda Authorizer内で認証認可したい場合などですね。
LambdaオーソライザーでLINEミニアプリ用APIのアクセス制御をする #LINE_API
今回はこのようなフロントエンドから渡ってくるアクセストークンを使ってLINE APIを叩いて取得する、というシチュエーションを想定してAPIの使い方を検証してみました。
なお本記事ではLINE DevelopersでLIFFアプリプロジェクトを作成するステップは割愛します。
アクセストークンを取得
まずはアクセストークンをお試しでどう取得するかですが、公式がline-liff-v2-starterというリポジトリを公開してくれており、こちらを利用するのが楽だと思いました。
cloneして使わせて頂きましょう。
git clone https://github.com/line/line-liff-v2-starter cd line-liff-v2-starter
以下のコマンドでWebアプリを起動します。
デフォルトでは5000番ポートで立ち上がります。
npm i MY_LIFF_ID=xxxxxxx npm run start # 5000番ポートでWebアプリが立ち上がる
環境変数 MY_LIFF_ID
は必須なので忘れないようにしましょう。
さらに、LIFFアプリではHTTPS必須のため、ngrokを使います。
別のターミナルを開いて下のコマンドを実行します。
ngrok http 5000
関連記事: ngrokを使ってローカル開発中のVueアプリをHTTPSで公開する
HTTPSなURLが得られたらLINE Developersで設定します。
そしてLIFFアプリにアクセスするとサンプルアプリが開けました。
Log in
をクリックしてLINEログインした後、 Get Access Token
をクリックすると、
アクセストークンが取得できました。
APIを叩いてプロフィール情報を取得
ドキュメントに従って、curlコマンドでAPIを叩いてみます。
curl -X GET https://api.line.me/v2/profile -H 'Authorization: Bearer ACCESS_TOKEN'
返ってきた結果は以下。
{"userId":"xxxxxxxxxxxxxxx","displayName":"xxxx","pictureUrl":"https://profile.line-scdn.net/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
無事プロフィールを取得できました。